#ifndef HEIGHT_MAP_TERRAIN_H
#define HEIGHT_MAP_TERRAIN_H

#include "Vectors.h"
#include "Mesh.h"
#include "ITerrain.h"

namespace steam
{
	namespace moon
	{

		class HeightMapTerrain : public ITerrain
		{
		public:

			HeightMapTerrain(const std::string hmapFile, const std::string textureFile, const base::Scale& scaleFactor);
		
			~HeightMapTerrain(void);

			coal::IMesh* getMesh();

			float getHeightAt(int x, int z) const;

			float getWidth() const;

			float getLength() const;

			const base::Scale& getScaleFactor() const;

		private:

			int	m_Z;
			int	m_X;
			coal::Mesh* m_mesh;
			base::Scale m_scale;

		};

	}
}

#endif